package structure

type HttpJsonResponse[T any] struct {
	Code    int    `json:"code" form:"code"`
	Message string `json:"message" form:"message"`
	Data    T      `json:"data" form:"data"`
}

// 返回success的HttpJsonResponse
func Success[T any](data T) *HttpJsonResponse[T] {
	return &HttpJsonResponse[T]{
		Code:    200,
		Message: "success",
		Data:    data,
	}
}

// 返回error的HttpJsonResponse
func Error[T any](message string) *HttpJsonResponse[T] {
	var emptyT T // 创建一个空的T类型变量，因为我们需要返回一个*HttpJsonResponse[T]
	return &HttpJsonResponse[T]{
		Code:    500,
		Message: message,
		Data:    emptyT, // 在错误响应中，数据字段可能不是必需的，但为了满足类型要求，我们传入一个空值
	}
}
